在開始建立 Django 應用程式之前,我們先來安裝環境~
本篇會介紹 pyenv
、virtualenv
的作用,還有一些安裝環境的細節,讓之後實作 Django 可以更順利!
這個東西就類似於 Ruby 的 RVM,只要下載下來後,就可以利用這個控制電腦 python 的版本
安裝前建議先把電腦以前有裝過的 python 刪掉,像我之前電腦有安裝 Anaconda
,這個東西是幫助新手快速上手 Python
用的,所以他們幫你安裝 python
版本,我一開始沒刪掉 Anaconda
,結果導致電腦的 Python
版本一直被 Anaconda
控制,所以為了簡單一點,還是把本機原本的 Python
刪乾淨,全部由 pyenv
控制比較單純
ps. 由於我的電腦是用 Mac
,所以下面的指令都是針對 Mac
,使用 Windows
朋友不太好意思~
首先在 mac
上安裝 pyenv
$ brew install pyenv
ps. 沒有下載 brew
的朋友記得先去下載喔
看看有什麼版本的 Python 可以安裝
$ pyenv install -l
Ps. 這個指令會印出目前所有可以安裝的 Python
版本
安裝指定版本
$ pyenv install 3.11.4
Ps. 我們來安裝 3.11.4
的 Python
查看目前本機安裝的版本
$ pyenv versions
------
system
* 3.11.4 (set by /Users/yee0526/.pyenv/version)
這樣成功安裝好 Python
版本,如果之後想要安裝別的版本,照著前面的流程做,就可以了
虛擬環境就是讓你電腦在執行 Python 應用程式的時候,可以獨立擁有不同的版本和套件,這樣聽起來有點不懂嗎?沒關係,我們等等實際跑一次給你看就知道了,我們先把環境安裝好
$ virtualenv --version
------
16.7.10
如果今天電腦有安裝的話,就會顯示在終端機上,如果沒有顯示,就代表沒有安裝,因此我們來安裝一下
下面的指令可以安裝虛擬環境
$ pip install virtualenv
如果不確定有沒有裝好,可以再執行一次版本確認,這樣應該會正常印出來
$ virtualenv --version
------
16.7.10
$ mkdir djangoBoy
$ cd djangoBoy
$ python3 -m venv virtualenv
Ps. 記得要 cd 進入
剛剛新增的資料夾裡面,再執行 python3 -m venv virtualenv
喔!
$ source virtualenv/bin/activate
這邊大家要注意一下,如果成功啟動虛擬環境,會在 shell 那邊顯示,由於我的 shell 是 ZSH,跟 bash 不太一樣,如果你的也是 ZSH,要特別記得 shell 修改那邊要加上虛擬環境的設定喔,我一開始學的時候,還以為壞掉了,一直進不去虛擬環境,結果最後面發現已經有進虛擬環境了,只是沒有顯示而已。
如果成功進入虛擬環境,會如下圖:
這邊附上我的 ZSH 的設定:
<!-- .zshrc -->
# Command Line message
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable vcs newline)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(command_execution_time status time virtualenv)
Ps. 到 zsh 的文件修改樣式
再來我們來確認一下,有虛擬環境後,沒使用和有使用真的有差別嗎!?實際執行下面的指令就很清楚了~
$ pip list
------
Package Version
---------- -------
pip 23.1.2
setuptools 65.5.0
Ps. pip list
是一個用於查看已安裝 Python
套件的命令,印出在虛擬環境中。而在虛擬環境中執行,會發現目前只有這兩個 Package
$ deactivate
pip list
$ pip list
------
Package Version
------------------ --------
appnope 0.1.3
asgiref 3.7.2
asttokens 2.2.1
backcall 0.2.0
...省略
由上面的狀況可以知道,我們進入虛擬環境中,可以發現環境裝的套件只有少數幾個,而離開虛擬環境後,本機之前安裝過的套件都跑出來了,由此可證明兩個環境是隔離開的,之後你在虛擬環境安裝的套件,都會安裝在虛擬環境裡面,這樣的好處是不會讓污染你本機的環境,而且如果之後還要新增其他版本的 Django 應用程式,也不用擔心套件版本不同互相影響。
今天學到哪些東西呢?
最後附上 Github: https://github.com/eagle0526/Django-store
從今天開始,每天的程式修改我都會更新上去,想要的人直接下載下來就好